Rich Buffer Data Structure 丰富的缓冲实现

    • 如果需要,允许使用自定义的缓冲类型。
    • 开箱即用的动态缓冲类型,具有像 StringBuffer 一样的动态缓冲能力。
    • 不再需要调用的flip()方法。

    更多信息请参考:

    举一个网络应用到极致的表现,你需要减少内存拷贝操作次数。你可能有一组缓冲区可以被组合以形成一个完整的消息。网络提供了一种复合缓冲,允许你从现有的任意数的缓冲区创建一个新的缓冲区而无需内存拷贝。例如,一个信息可以由两部分组成;header 和 body。在一个模块化的应用,当消息发送出去时,这两部分可以由不同的模块生产和装配。

    通过对比, ByteBuf 不会有警告,因为它是完全可扩展并有一个内置的复合缓冲区。

    最频繁使用的缓冲区 ByteBuf 的实现是一个非常薄的字节数组包装器(比如,一个字节)。与 ByteBuffer 不同,它没有复杂的边界和索引检查补偿,因此对于 JVM 优化缓冲区的访问更加简单。更多复杂的缓冲区实现是用于拆分或者组合缓存,并且比 ByteBuffer 拥有更好的性能。